Ana içeriğe geç

Graf (Graph) Veri Yapısı

Graf (graph) veri yapısı, düğümler (nodes) ve bu düğümleri birbirine bağlayan kenarlar (edges) ile tanımlanan bir veri yapısıdır. Düğümler, bağlantılar ve bu bağlantıların yönleri graf veri yapısının temel özelliklerindendir. Graf veri yapısı, birçok programlama probleminde kullanılır. Örneğin, haritalar, sosyal ağlar, yollar ve hava yolları ağı, graf veri yapısının bir örneğidir.

Gündelik hayatta graf veri yapısının kullanıldığı 3 örnek:

  1. Bir sosyal ağ, kullanıcıları ve kullanıcıların birbirleriyle olan ilişkilerini temsil eden bir graf veri yapısıdır.
  2. Hava yolları ağı, havaalanlarını ve bu havaalanlarını birbirine bağlayan uçuşları temsil eden bir graf veri yapısıdır.
  3. Haritalar, şehirleri ve bu şehirleri birbirine bağlayan yolları temsil eden bir graf veri yapısıdır.

Bu 3 örnek için Türkçe pseudo kodları:

  1. Bir sosyal ağ için pseudo kod:
// Sosyal ağ için graf oluştur
sosyal_ag = bos_graf()

// Kullanıcı düğümleri oluştur
ali = yeni_dugum("Ali")
ayse = yeni_dugum("Ayşe")
fatih = yeni_dugum("Fatih")
aylin = yeni_dugum("Aylin")

// Kullanıcıların birbirleriyle olan ilişkileri bağlanır
sosyal_ag.kenar_ekle(ali, ayse)
sosyal_ag.kenar_ekle(ali, fatih)
sosyal_ag.kenar_ekle(ayse, aylin)

// Düğümler gezilerek kullanıcılar listelensin
kullanici_listesi = bos_liste()
düğümleri_gez(sosyal_ag, ali, kullanici_listesi)

  1. Hava yolları ağı için pseudo kod:
hava_yollari_agi = bos_graf() // Havaalanı düğümleri oluştur istanbul = yeni_dugum("İstanbul") ankara = yeni_dugum("Ankara") izmir = yeni_dugum("İzmir") adana = yeni_dugum("Adana") // Havaalanları arasındaki uçuşlar bağlanır hava_yollari_agi.yönlendirilmiş_kenar_ekle(istanbul, ankara) hava_yollari_agi.yönlendirilmiş_kenar_ekle(istanbul, izmir) hava_yollari_agi.yönlendirilmiş_kenar_ekle(istanbul, adana) hava_yollari_agi.yönlendirilmiş_kenar_ekle(ankara, izmir) hava_yollari_agi.yönlendirilmiş_kenar_ekle(adana, istanbul) // Düğümler gezilerek havaalanları listelensin havaalanlari_listesi = bos_liste() düğümleri_gez(hava_yollari_agi, istanbul, havaalanlari_listesi)
  1. Haritalar için pseudo kod:
// Harita için graf oluştur
harita = bos_graf()

// Şehir düğümleri oluştur
istanbul = yeni_dugum("İstanbul")
ankara = yeni_dugum("Ankara")
izmir = yeni_dugum("İzmir")
adana = yeni_dugum("Adana")

// Şehirler arasındaki yollar bağlanır
harita.yönsüz_kenar_ekle(istanbul, ankara)
harita.yönsüz_kenar_ekle(istanbul, izmir)
harita.yönsüz_kenar_ekle(istanbul, adana)
harita.yönsüz_kenar_ekle(ankara, izmir)
harita.yönsüz_kenar_ekle(adana, izmir)

// Düğümler gezilerek şehirler listelensin
sehirler_listesi = bos_liste()
düğümleri_gez(harita, istanbul, sehirler_listesi)